package com.itheima.wemedia.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.itheima.common.vo.PageResultVo;
import com.itheima.wemedia.dto.WmNewsAuthDto;
import com.itheima.wemedia.dto.WmNewsDtoSave;
import com.itheima.wemedia.dto.WmNewsPageReqDto;
import com.itheima.wemedia.pojo.WmNews;
import com.itheima.wemedia.vo.WmNewsVo;

import java.util.List;
import java.util.Map;

/**
 * @description <p>自媒体图文内容信息 业务接口</p>
 *
 * @version 1.0
 * @package com.itheima.wemedia.service
 */
public interface WmNewsService extends IService<WmNews> {

    /**
     * 自媒体文章分页查询
     * @param dto
     * @return
     */
    PageResultVo<WmNews> findPage(WmNewsPageReqDto dto);

    /**
     * 提交文章
     * @param draft 是否为草稿
     * @param dtoSave
     * @return
     */
    Integer submit(WmNewsDtoSave dtoSave,boolean draft);

    /**
     * 删除文章
     * @param newsId
     * @return
     */
    Boolean deleteById(Integer newsId);

    /**
     * 上架或者下架
     * @param paramMap
     */
    void downOrUp(Map<String, Integer> paramMap);

    /**
     * 通过作者名称分页查询
     * @param dto
     * @return
     */
    PageResultVo<WmNewsVo> findPageByAuthorName(WmNewsPageReqDto dto);

    /**
     * 审核通过
     * @param dto
     */
    void authPass(WmNewsAuthDto dto);

    /**
     * 审核失败
     * @param dto
     */
    void authFail(WmNewsAuthDto dto);

    /**
     * 通过id查询文章
     * @param newsId
     * @return
     */
    WmNewsVo getOneVo(Long newsId);

    /**
     * 查询审核通过的文章，状态为8。进行数据同步到文章微服务
     * @param dto
     * @return
     */
    List<WmNewsVo> listArticleSync(WmNewsPageReqDto dto);
}
